﻿using System;
using System.Windows.Forms;
using DevMaker.CM.DAO;


namespace DevMaker.CM.Winform {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            PictureRojo.Visible = PictureVerde.Visible = groupBox1.Visible = false;
            // Define the border style of the form to a dialog box.
            FormBorderStyle = FormBorderStyle.FixedDialog;
            LimpiarLabels();
        }

        private void button1_Click(object sender, EventArgs e) {
            var timer = System.Diagnostics.Stopwatch.StartNew();

            PictureRojo.Visible = PictureVerde.Visible = groupBox1.Visible = false;
            groupBox1.Visible = true;
            LimpiarLabels();

            var cupon = new CuponDao().ObtieneCupon(textBox1.Text);
            if (cupon != null) {
                if (cupon.Valido) {
                    PictureVerde.Visible = true;
                    LblEstado.Text = "Cupón Valido!";
                } else {
                    PictureRojo.Visible = true;
                    if (!cupon.ValidoPorFecha)
                        LblEstado.Text = "Cupón Invalido" + Environment.NewLine + " por fecha y/o Hora!";
                    else
                        LblEstado.Text = "Cupón Invalido!";
                }

                LblCodigo.Text = cupon.Codigo;
                LblPelicula.Text = cupon.Pelicula;
                LblFecha.Text = cupon.FechaFuncion.ToString();
                LblSala.Text = cupon.Sala;
                LblCliente.Text = String.Format("{0} ({1})", cupon.ClienteNombre, cupon.ClienteEmail);

                LblImpresoEn.Text = cupon.ImpresoEn;
                LblCantidadEntradas.Text = cupon.CantidadEntradas.ToString();

                LblImpresoPor.Text = cupon.ImpresoPor;
                if (cupon.FechaImpresion != null)
                    LblFechaImpresion.Text = cupon.FechaImpresion.Value.ToString();
                else
                    LblFechaImpresion.Text = "";
            } else {
                LblEstado.Text = "No encontrado!";
                PictureRojo.Visible = true;
            }

            textBox1.SelectAll();
            textBox1.Focus();
            Console.WriteLine(DateTime.Now + ")En consultar " + textBox1.Text + " se demoro -->" + (timer.Elapsed));

        }
        private void LimpiarLabels() {
            LblCodigo.Text =
            LblPelicula.Text =
            LblFecha.Text =
            LblSala.Text =
            LblCliente.Text =
            LblImpresoEn.Text = LblCantidadEntradas.Text = LblFechaImpresion.Text =
            LblImpresoPor.Text = LblEstado.Text = String.Empty;
        }

    }
}
